package vista;
import java.awt.BorderLayout;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;
import javax.swing.border.SoftBevelBorder;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.SwingUtilities;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import java.util.Date;
import java.util.Vector;

import javax.swing.BorderFactory;

import bean.JTextFieldValidator;
import com.toedter.calendar.JCalendar;

import vista.VentanaListadoColaboradores;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class VentanaColaborador extends javax.swing.JFrame {
	private JPanel panIncluirColaborador;
	private JTextFieldValidator jTextnombre;
	private JTextFieldValidator jTextapellido;
	private JCalendar jFecha;
	private JTable jTablecolaboradores;
	private JScrollPane jScrollPane1;
	private JComboBox jCombosexo;
	private JLabel JLabelslash1;
	private JLabel Jlabeltitulotabla;
	private JLabel jLabelslash2;
	private JTextFieldValidator jTextanno;
	private JTextFieldValidator jTextmes;
	private JTextFieldValidator jTextdia;
	private JLabel lblNombreColaborador;
	private JLabel lblTlfColaborador;
	private JLabel lblFNacimientoColaborador;
	private JButton jBotonCancelar;
	private JButton jBotonGuardar;
	private JButton jBotonBuscar;
	private JTextField jTextsexo;
	private JButton jBotonEliminar;
	private JButton jBotonModificar;
	private JComboBox jCombotipo;
	private JLabel lblTipoColaborador;
	private JTextFieldValidator jTexttelefono;
	private JTextField jTextemail;
	private JLabel lblEmail;
	private JLabel lblSexoColaborador;
	private JTextFieldValidator jTextcedula;
	private JLabel lblCedulaColaborador;
	private JLabel lblIncluirColaborador;
	private JLabel lblApellidoColaborador;

	/**
	* Auto-generated main method to display this JFrame
	*/
	private static VentanaColaborador instancia;

	public static  VentanaColaborador getInstancia() {
		if (instancia == null)
			instancia = new VentanaColaborador();
		else
			instancia.setTitle("Colaboradores");
		return instancia;
	}
	
	public VentanaColaborador() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			{
				panIncluirColaborador = new Fondo("imagen.jpg");
				getContentPane().add(panIncluirColaborador, BorderLayout.CENTER);
				panIncluirColaborador.setLayout(null);
				panIncluirColaborador.setPreferredSize(new java.awt.Dimension(572, 432));
				panIncluirColaborador.add(getJScrollPane1());
				{
					jTextnombre = new JTextFieldValidator();
					jTextnombre.setTipoCaracteresPermitidos(JTextFieldValidator.LETRAS_Y_ESPACIOS);
					panIncluirColaborador.add(jTextnombre);
					jTextnombre.setBounds(105, 106, 139, 22);
				}
				{
					jTextapellido = new JTextFieldValidator();
					jTextapellido.setTipoCaracteresPermitidos(JTextFieldValidator.LETRAS_Y_ESPACIOS);
					panIncluirColaborador.add(jTextapellido);
					jTextapellido.setBounds(105, 149, 138, 22);
				}
				{
					lblNombreColaborador = new JLabel();
					panIncluirColaborador.add(lblNombreColaborador);
					lblNombreColaborador.setText("Nombre:");
					lblNombreColaborador.setBounds(32, 107, 78, 18);
					lblNombreColaborador.setFont(new java.awt.Font("SansSerif",1,12));
				}
				{
					lblApellidoColaborador = new JLabel();
					panIncluirColaborador.add(lblApellidoColaborador);
					lblApellidoColaborador.setText("Apellido:");
					lblApellidoColaborador.setBounds(32, 148, 85, 23);
					lblApellidoColaborador.setFont(new java.awt.Font("SansSerif",1,12));
				}
				{
					lblIncluirColaborador = new JLabel();
					panIncluirColaborador.add(lblIncluirColaborador);
					lblIncluirColaborador.setText("COLABORADOR");
					lblIncluirColaborador.setBounds(209, 7, 156, 28);
					lblIncluirColaborador.setFont(new java.awt.Font("SansSerif",1,18));
				}
				{
					lblCedulaColaborador = new JLabel();
					panIncluirColaborador.add(lblCedulaColaborador);
					lblCedulaColaborador.setText("Cedula:");
					lblCedulaColaborador.setBounds(32, 67, 71, 19);
					lblCedulaColaborador.setFont(new java.awt.Font("SansSerif",1,12));
				}
				{
					jTextcedula = new JTextFieldValidator();
					jTextcedula.setTipoCaracteresPermitidos(JTextFieldValidator.SOLO_NUMEROS);
					panIncluirColaborador.add(jTextcedula);
					jTextcedula.setBounds(105, 65, 113, 22);
				}
				{
					lblSexoColaborador = new JLabel();
					panIncluirColaborador.add(lblSexoColaborador);
					lblSexoColaborador.setText("Sexo:");
					lblSexoColaborador.setBounds(32, 191, 56, 22);
					lblSexoColaborador.setFont(new java.awt.Font("SansSerif",1,12));
				}
				{
					lblFNacimientoColaborador = new JLabel();
					panIncluirColaborador.add(lblFNacimientoColaborador);
					lblFNacimientoColaborador.setText("Fecha de Nacimiento:");
					lblFNacimientoColaborador.setBounds(355, 127, 191, 20);
					lblFNacimientoColaborador.setFont(new java.awt.Font("SansSerif",1,12));
				}
				{
					lblTlfColaborador = new JLabel();
					panIncluirColaborador.add(lblTlfColaborador);
					lblTlfColaborador.setText("Telefono:");
					lblTlfColaborador.setBounds(34, 234, 96, 21);
					lblTlfColaborador.setFont(new java.awt.Font("SansSerif",1,12));
				}
				{
					lblEmail = new JLabel();
					panIncluirColaborador.add(lblEmail);
					lblEmail.setText("E-Mail:");
					lblEmail.setBounds(34, 277, 71, 20);
					lblEmail.setFont(new java.awt.Font("SansSerif",1,12));
				}
				{
					jTextemail = new JTextField();
					panIncluirColaborador.add(jTextemail);
					jTextemail.setBounds(105, 276, 185, 22);
				}
				{
					jTexttelefono = new JTextFieldValidator();
					jTexttelefono.setTipoCaracteresPermitidos(JTextFieldValidator.SOLO_NUMEROS);
					panIncluirColaborador.add(jTexttelefono);
					jTexttelefono.setBounds(105, 234, 106, 22);
				}
				{
					jBotonCancelar = new JButton();
					panIncluirColaborador.add(jBotonCancelar);
					jBotonCancelar.setText("Cancelar");
					jBotonCancelar.setBounds(470, 510, 115, 21);
				}
				{
					lblTipoColaborador = new JLabel();
					panIncluirColaborador.add(lblTipoColaborador);
					lblTipoColaborador.setText("Tipo de Colaborador");
					lblTipoColaborador.setBounds(351, 67, 129, 19);
					lblTipoColaborador.setFont(new java.awt.Font("SansSerif",1,12));
				}
				{
					ComboBoxModel cmbTColaboradorModel = 
							new DefaultComboBoxModel(
									new String[] { "", "Profesor Permanente", "Profesor Invitado", "Estudiante", "Ing. de Investigacion", "Agentes Asociados" });
					jCombotipo = new JComboBox();
					panIncluirColaborador.add(jCombotipo);
					jCombotipo.setModel(cmbTColaboradorModel);
					jCombotipo.setBounds(475, 67, 189, 22);
				}
				{
					ComboBoxModel jCombosexoModel = 
							new DefaultComboBoxModel(
									new String[] { "","Masculino", "Femenino" });
					jCombosexo = new JComboBox();
					panIncluirColaborador.add(jCombosexo);
					jCombosexo.setModel(jCombosexoModel);
					jCombosexo.setBounds(106, 191, 151, 23);
				}
				{
					jBotonGuardar = new JButton();
					panIncluirColaborador.add(jBotonGuardar);
					jBotonGuardar.setText("Guardar");
					jBotonGuardar.setBounds(94, 510, 115, 22);
				}
				{
					jBotonModificar = new JButton();
					panIncluirColaborador.add(jBotonModificar);
					jBotonModificar.setText("Modificar");
					jBotonModificar.setBounds(343, 510, 116, 22);
				}
				{
					jBotonEliminar = new JButton();
					panIncluirColaborador.add(jBotonEliminar);
					jBotonEliminar.setText("Eliminar");
					jBotonEliminar.setBounds(219, 510, 114, 22);
				}
				{
					jBotonBuscar = new JButton();
					panIncluirColaborador.add(jBotonBuscar);
					jBotonBuscar.setText("Buscar");
					jBotonBuscar.setBounds(230, 65, 104, 21);
				}
				{
					jTextsexo = new JTextField();
					panIncluirColaborador.add(jTextsexo);
					jTextsexo.setBounds(269, 191, 50, 23);
				}
				{
					jTextdia = new JTextFieldValidator();
					jTextdia.setTipoCaracteresPermitidos(JTextFieldValidator.SOLO_NUMEROS);
					jTextdia.setMaximaLongitud(2);
					panIncluirColaborador.add(jTextdia);
					jTextdia.setBounds(496, 346, 34, 23);
					
				}
				{
					jTextmes = new JTextFieldValidator();
					panIncluirColaborador.add(jTextmes);
					jTextmes.setTipoCaracteresPermitidos(JTextFieldValidator.SOLO_NUMEROS);
					jTextmes.setMaximaLongitud(2);
					jTextmes.setBounds(542, 346, 33, 23);
				}
				{
					jTextanno = new JTextFieldValidator();
					panIncluirColaborador.add(jTextanno);
					panIncluirColaborador.add(getJFecha());
					jTextanno.setTipoCaracteresPermitidos(JTextFieldValidator.SOLO_NUMEROS);
					jTextanno.setMaximaLongitud(4);
					jTextanno.setBounds(606, 346, 33, 23);
				}
			}
			pack();
			this.setSize(692, 605);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}


	
	
//Listener de los botones
	public void agregarListener(ActionListener accion)
	{
		jBotonBuscar.addActionListener(accion);
		jBotonGuardar.addActionListener(accion);
		jBotonEliminar.addActionListener(accion);
		jBotonModificar.addActionListener(accion);
		jBotonCancelar.addActionListener(accion);
		
	}
	
	//Listener de la tabla
	public void mouseListener(MouseListener mouseaccion)
	{
		jTablecolaboradores.addMouseListener(mouseaccion);
	}
	
	
	//Sets de los campos de texto
	
	public void setNombre(String nom) {
		jTextnombre.setText(nom);
	}

	public void setApellido(String ape) {
		jTextapellido.setText(ape);
	}

	public void setAnno(String anno) {
		jTextanno.setText(anno);
	}

	public void setMes(String mes) {
		jTextmes.setText(mes);
	}

	public void setDia(String dia) {
		jTextdia.setText(dia);
	}

	public void setSexo(String sexo) {
		jTextsexo.setText(sexo);
	}

	public void setTelefono(String telef) {
		jTexttelefono.setText(telef);
	}

	public void setEmail(String mail) {
		jTextemail.setText(mail);
	}

	public void setCedula(String ced) {
		jTextcedula.setText(ced);
	}

	
	//Set de la TABLA
	public void setListadoColaboradores(AbstractTableModel tablacolaboradores)
	{
		jTablecolaboradores.setModel(tablacolaboradores);
	}
	
	
	public JTable getjTablecolaboradores() {
		return jTablecolaboradores;
	}


	//Prueba Combo
	public JComboBox getjCombotipo() {
		return jCombotipo;
	}

	public void setjCombotipo(JComboBox jCombotipo) {
		this.jCombotipo = jCombotipo;
	}
	
	public void setTipo(String tip){
		jCombotipo.setSelectedItem(tip);
	}

	public String getTipoColaborador()
	{
		String tipo;
		tipo = (String) jCombotipo.getSelectedItem();
		return tipo;
	}
//-----------------------------------METODOS DEL COMBO DE SEXO
	public JComboBox getjCombosexo() {
		return jCombosexo;
	}

	public void setjCombosexo(JComboBox jCombosexo) {
		this.jCombosexo = jCombosexo;
	}
	public void setComboSexo(String sex)
	{
		jCombosexo.setSelectedItem(sex);
	}
	public String getSexoColaborador()
	{
		return (String) jCombosexo.getSelectedItem();
	}
//---------------------------AQUI TERMINAN LOS METODOS DEL CSEXO
	
	//Obtener el texto dentro de los campos
	public String GetCedulaColaborador()
	{
		return jTextcedula.getText();
	}
	public String GetNombreColaborador()
	{
		return jTextnombre.getText();
	}
	public String GetApellidoColaborador()
	{
		return jTextapellido.getText();
	}
	public String GetTelefonoColborador()
	{
		return jTexttelefono.getText();
	}
	public String GetEmailColaborador()
	{
		return jTextemail.getText();
	}
	/*public String GetSexoColaborador()
	{
		return jTextsexo.getText();
	}*/
	public String GetDia()
	{
		return jTextdia.getText();
	}
	public String GetMes()
	{
		return jTextmes.getText();
		
	}
	public String GetAnno()
	{
		return jTextanno.getText();
	}
	
	
	//Metodo para limpiar los campos
	
	
	public void LimpiarCampos()
	{
		jTextcedula.setText("");
		jTextnombre.setText("");
		jTextapellido.setText("");
		jTextemail.setText("");
		jTexttelefono.setText("");
		jTextsexo.setText("");
		jTextdia.setText("");
		jTextmes.setText("");
		jTextanno.setText("");
		jCombosexo.setSelectedIndex(0);
		jCombotipo.setSelectedIndex(0);
	}
	
	//Gets de los botones
	
	
	public JButton getjBotonCancelar() {
		return jBotonCancelar;
	}

	public JButton getjBotonGuardar() {
		return jBotonGuardar;
	}

	public JButton getjBotonBuscar() {
		return jBotonBuscar;
	}

	public JButton getjBotonEliminar() {
		return jBotonEliminar;
	}

	public JButton getjBotonModificar() {
		return jBotonModificar;
	}

	//Metodo para enviar mensajes por pantalla
	
	public void mostrarMensaje(String mensaje){
		JOptionPane.showMessageDialog(this, mensaje);
	}
	
	private JLabel getJLabelslash1() {
		if(JLabelslash1 == null) {
			JLabelslash1 = new JLabel();
			JLabelslash1.setText("/");
			JLabelslash1.setBounds(199, 234, 10, 16);
			JLabelslash1.setFont(new java.awt.Font("Segoe UI",0,16));
		}
		return JLabelslash1;
	}
	
	private JLabel getJLabelslash2() {
		if(jLabelslash2 == null) {
			jLabelslash2 = new JLabel();
			jLabelslash2.setText("/");
			jLabelslash2.setBounds(247, 236, 10, 16);
			jLabelslash2.setFont(new java.awt.Font("Segoe UI",0,18));
		}
		return jLabelslash2;
	}
	
	public JLabel getJlabeltitulotabla() {
		if(Jlabeltitulotabla == null) {
			Jlabeltitulotabla = new JLabel();
			Jlabeltitulotabla.setText("Colaboradores Registrados");
			Jlabeltitulotabla.setBounds(365, 185, 163, 16);
			Jlabeltitulotabla.setFont(new java.awt.Font("SansSerif",1,12));
		}
		return Jlabeltitulotabla;
	}

	public JTextField getjTextsexo() {
		return jTextsexo;
	}
	
	private JScrollPane getJScrollPane1() {
		if(jScrollPane1 == null) {
			jScrollPane1 = new JScrollPane();
			jScrollPane1.setBounds(103, 387, 472, 90);
			jScrollPane1.setViewportView(getJTablecolaboradores());
		}
		return jScrollPane1;
	}
	
	private JTable getJTablecolaboradores() {
		if(jTablecolaboradores == null) {
			TableModel jTablecolaboradoresModel = 
					new DefaultTableModel(
							new String[][] { },
							new String[] { "Cedula","Nombre" , "Apellido" });
			jTablecolaboradores = new JTable();
			jTablecolaboradores.setModel(jTablecolaboradoresModel);
		}
		return jTablecolaboradores;
	}
	
	private JCalendar getJFecha() {
		if(jFecha == null) {
			jFecha = new JCalendar();
			jFecha.setBounds(355, 153, 200, 163);
		}
		return jFecha;
	}
	
	public Date getFecha()
	{
		return jFecha.getDate();
	}
	
	public boolean camposVacios()
	{
		boolean valor = false;
		if(jTextcedula.getText().equalsIgnoreCase(""))
		{
			mostrarMensaje("Debe ingresar la Cedula del Colaborador");
			valor = true;
		}
		if(jTextnombre.getText().equalsIgnoreCase(""))
		{
			mostrarMensaje("Debe ingresar el Nombre del Colaborador");
			valor=true;
		}
		if(jTextapellido.getText().equalsIgnoreCase(""))
		{
			mostrarMensaje("Debe ingresar el Apellido del Colaborador");
			valor=true;
		}
		if(getSexoColaborador().equalsIgnoreCase(""))
		{
			mostrarMensaje("Debe seleccionar el Sexo del Colaborador");
			valor = true;
		}
		if(jTexttelefono.getText().equalsIgnoreCase(""))
		{
			mostrarMensaje("Debe ingresar el Telefono del Colaborador");
			valor = true;
		}
		if(jTextemail.getText().equalsIgnoreCase(""))
		{
			mostrarMensaje("Debe ingresar el E-Mail del Colaborador");
			valor = true;
		}
		if(getTipoColaborador().equalsIgnoreCase(""))
		{
			mostrarMensaje("Debe seleccionar el Tipo de Colaborador");
			valor = true;
		}
		return valor;
	}
	public void cargarListado(Vector<String> colaboradores){
		DefaultTableModel tbl = (DefaultTableModel) jTablecolaboradores.getModel();
		tbl.addRow(colaboradores);
	}
	
	
}
